iT邦幫忙

0

Wordpress的多規格商品設計

  • 分享至 

  • xImage
  •  

先在 Products 新增通用屬性。例如顏色,紅、藍、綠,尺寸,大、中、小。
https://ithelp.ithome.com.tw/upload/images/20230602/20055861guoDTLd0Kv.png

下圖是 terms 資料表
https://ithelp.ithome.com.tw/upload/images/20230602/20055861b5AkMhqJ7Y.png

新增一個商品
https://ithelp.ithome.com.tw/upload/images/20230602/20055861fRSXSt3OuY.png

商品頁的下半部把 Attributes 都拉進来
https://ithelp.ithome.com.tw/upload/images/20230602/2005586161wCqcODiH.png

https://ithelp.ithome.com.tw/upload/images/20230602/20055861cAEOJ7o6Iq.png

從網址可以看到,現在這個商品代號是 34

下圖,原本35-43 那些記錄是沒有的。但是如圖所示,按下 Go 之後,它會自動產生每一種組合。每一個編號都是一筆商品。
https://ithelp.ithome.com.tw/upload/images/20230602/200558617Z9ZeJv5Jt.png

下圖是 posts 資料表
https://ithelp.ithome.com.tw/upload/images/20230602/20055861u29nP55HgQ.png
右邊 post_name 欄位,使用線上解碼查出,就是主商品的 post_title。難道 post_name 就是 url 字串,俗稱的 slug ?

回到 All Products 可以看到,這系列的商品只顯示一個。但是資料表確實產生了多件變種商品。
https://ithelp.ithome.com.tw/upload/images/20230602/20055861KmLK9i9Gwh.png

回到該項主商品的編輯頁 > Variations, 圖中的黑手區域,點擊之後可以展開收合該項變種的設定
https://ithelp.ithome.com.tw/upload/images/20230602/20055861nhANyH7RMM.png

展開後,可以設定標準價格 Regular price, 優惠價 Sale price... 等等
https://ithelp.ithome.com.tw/upload/images/20230602/20055861paL7YnPoyC.png

下圖是 postmeta 資料表
https://ithelp.ithome.com.tw/upload/images/20230602/20055861oFM8FT5H9j.png

其中 meta_id=183, post_id 這筆商品的 postmeta 記錄,內容如下

a:2:{s:8:"pa_color";a:6:{s:4:"name";s:8:"pa_color";s:5:"value";s:0:"";s:8:"position";i:0;s:10:"is_visible";i:1;s:12:"is_variation";i:1;s:11:"is_taxonomy";i:1;}s:7:"pa_size";a:6:{s:4:"name";s:7:"pa_size";s:5:"value";s:0:"";s:8:"position";i:1;s:10:"is_visible";i:1;s:12:"is_variation";i:1;s:11:"is_taxonomy";i:1;}}

pa_color 其中的 pa, 我猜是 product attribute 的縮寫

而 meta_value 這一欄的型態,是 longtext
https://ithelp.ithome.com.tw/upload/images/20230602/20055861mM7cRxpDqI.png

也就是說,wordpress 根本不管什麼欄位的優化,像是 用 char 好還是 varchar好?用 varchar 要開多長的寬度?要用 decimal 還是 float 還是 double ?? 反正通通都是 longtext。

我好奇。我之前待過某家公司,料件有兩萬件。它的網站系統跑起來有點慢。若照 wordpress 這種做法,postmeta 會是好幾倍,超過 20 倍算是基本的。

下圖把商品代號 35 全抓出來,共21筆。所以兩萬筆料件 x 21,那就是 42 萬筆記錄。效率?可能它有快取,目前還不瞭解它的程式碼。
https://ithelp.ithome.com.tw/upload/images/20230602/20055861RPp30RNFDV.png


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言